package com.qiangesoft.ratelimit.core.guava;

import com.qiangesoft.ratelimit.core.LimitType;

import java.lang.annotation.*;

/**
 * guava限流注解
 *
 * @author qiangesoft
 * @date 2024-03-21
 */
@Target(value = ElementType.METHOD)
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
public @interface GuavaRateLimit {

    /**
     * 限流类型
     */
    LimitType limitType() default LimitType.SYSTEM;

    /**
     * 限流key：默认为[类名全路径.方法名]
     */
    String key() default "";

    /**
     * 限流次数
     */
    int count() default 5;
}